:art: temperature__max

huangqimin001 преди 3 години
родител
ревизия
a0585cb75d
променени са 3 файла, в които са добавени 38 реда и са изтрити 55 реда
  1. 25 43
      api/eqpt_views.py
  2. 1 1
      equipment/admin.py
  3. 12 11
      equipment/models.py

+ 25 - 43
api/eqpt_views.py

@@ -163,31 +163,33 @@ def eqpt_result(request):
163 163
         return response(IsolationPointStatusCode.ISOLATIONPOINT_NOT_FOUND)
164 164
 
165 165
     eqpts = ThermometerEquipmentInfo.objects.filter(point_id=point_id, active_status=ThermometerEquipmentInfo.ONLINE, status=True)
166
-    macids = eqpts.values_list('macid', flat=True)
167 166
 
168
-    logs = ThermometerMeasureInfo.objects.filter(
169
-        point_id=point_id,
170
-        point_measure_ymd=tc.local_string(format='%Y-%m-%d'),
171
-        point_measure_window=point.previous_measure_window,
172
-        macid__in=macids,
173
-        status=True,
174
-    ).values('macid', 'temperature')
175
-    logs = {log.get('macid'): log.get('temperature') for log in logs}
176
-
177
-    ipuis = IsolationPointUserInfo.objects.filter(point_id=point_id, status=True).values('pk', 'fields')
178
-    ipuis = {info.get('pk'): info.get('fields') for info in ipuis}
167
+    ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True)
168
+    ipuis = [ipui.data for ipui in ipuis]
179 169
 
180 170
     total_active_eqpt_num = eqpts.count()
181
-    has_upload_temperature_num = len(logs)
182
-    fever_num = len([1 for temperature in logs.values() if temperature > settings.FEVER_TEMPERATURE])
171
+    has_upload_temperature_num = len([1 for ipui in ipuis if ipui.get('temperature_has_upload', '') == '已上报'])
172
+    fever_num = len([1 for ipui in ipuis if ipui.get('temperature', 0) > settings.FEVER_TEMPERATURE])
173
+
174
+    ipuis = {ipui.get('pk'): {
175
+        'fields': ipui.get('fields', []),
176
+        'observed_days': ipui.get('observed_days', 0),
177
+        'temperature_has_upload': ipui.get('temperature_has_upload', False),
178
+        'temperature': ipui.get('temperature', 0),
179
+        'last_submit_at': ipui.get('last_submit_at', ''),
180
+        'remark': ipui.get('remark', ''),
181
+    } for ipui in ipuis}
183 182
 
184 183
     if kw:
185 184
         eqpts = eqpts.filter(Q(name__icontains=kw) | Q(phone__icontains=kw))
186 185
     eqpts, left = pagination(eqpts, page, num)
187 186
     eqpts = [{**eqpt.data, **{
188
-        'has_upload': eqpt.macid in logs,
189
-        'temperature': logs.get(eqpt.macid, 0),
190
-        'fields': ipuis.get(eqpt.ipui_pk, {}),
187
+        'has_upload': ipuis.get(eqpt.ipui_pk, {}).get('temperature_has_upload', 0),
188
+        'temperature': ipuis.get(eqpt.ipui_pk, {}).get('temperature', 0),
189
+        'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0),
190
+        'last_submit_at': ipuis.get(eqpt.ipui_pk, {}).get('last_submit_at', ''),
191
+        'remark': ipuis.get(eqpt.ipui_pk, {}).get('remark', ''),
192
+        'fields': ipuis.get(eqpt.ipui_pk, {}).get('fields', []),
191 193
     }} for eqpt in eqpts]
192 194
 
193 195
     return response(data={
@@ -208,41 +210,24 @@ def get_screen_data(point=None, point_id=None):
208 210
             return {}
209 211
 
210 212
     eqpts = ThermometerEquipmentInfo.objects.filter(point_id=point.point_id, active_status=ThermometerEquipmentInfo.ONLINE, status=True)
211
-    # macids = eqpts.values_list('macid', flat=True)
212
-    #
213
-    # logs = ThermometerMeasureInfo.objects.filter(
214
-    #     point_id=point.point_id,
215
-    #     point_measure_ymd=tc.local_string(format='%Y-%m-%d'),
216
-    #     point_measure_window=point.previous_measure_window,
217
-    #     macid__in=macids,
218
-    #     status=True,
219
-    # ).values('macid', 'temperature', 'updated_at')
220
-    # temperature_logs = {log.get('macid'): log.get('temperature') for log in logs}
221
-    # time_logs = {log.get('macid'): tc.local_string(utc_dt=log.get('updated_at'), format='%m-%d %H:%M') for log in logs}
222 213
 
223 214
     ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True)
224 215
     ipuis = [ipui.data for ipui in ipuis]
225 216
 
226 217
     total_active_eqpt_num = eqpts.count()
227
-    # has_upload_temperature_num = len(temperature_logs)
228
-    # fever_num = len([1 for temperature in temperature_logs.values() if temperature > settings.FEVER_TEMPERATURE])
229 218
     has_upload_temperature_num = len([1 for ipui in ipuis if ipui.get('temperature_has_upload', '') == '已上报'])
230 219
     fever_num = len([1 for ipui in ipuis if ipui.get('temperature', 0) > settings.FEVER_TEMPERATURE])
231 220
 
232
-    # ipuis_fields = {info.get('pk'): info.get('fields') for info in ipuis}
233
-    # ipuis_observed_days = {info.get('pk'): info.get('observed_days') for info in ipuis}
234 221
     ipuis = {ipui.get('pk'): {
235
-        'fields': ipui.get('fields'),
236
-        'observed_days': ipui.get('observed_days'),
237
-        'temperature_has_upload': ipui.get('temperature_has_upload'),
238
-        'temperature': ipui.get('temperature'),
239
-        'last_submit_at': ipui.get('last_submit_at'),
240
-        'remark': ipui.get('remark'),
222
+        'fields': ipui.get('fields', []),
223
+        'observed_days': ipui.get('observed_days', 0),
224
+        'temperature_has_upload': ipui.get('temperature_has_upload', False),
225
+        'temperature': ipui.get('temperature', 0),
226
+        'last_submit_at': ipui.get('last_submit_at', ''),
227
+        'remark': ipui.get('remark', ''),
241 228
     } for ipui in ipuis}
242 229
 
243 230
     eqpts = [{**eqpt.screen_data, **{
244
-        # 'has_upload': eqpt.macid in temperature_logs,
245
-        # 'temperature': temperature_logs.get(eqpt.macid, 0),
246 231
         'has_upload': ipuis.get(eqpt.ipui_pk, {}).get('temperature_has_upload', 0),
247 232
         'temperature': ipuis.get(eqpt.ipui_pk, {}).get('temperature', 0),
248 233
         'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0),
@@ -264,11 +249,8 @@ def get_screen_data(point=None, point_id=None):
264 249
         'sex': eqpt.get('sex', ''),
265 250
         'age': eqpt.get('age', ''),
266 251
         'status': eqpt.get('has_upload'),
267
-        # 'status': '已上报' if eqpt.get('temperature') else '未上报',
268 252
         'last_report_time': eqpt.get('last_submit_at', ''),
269
-        # 'last_report_time': time_logs.get(eqpt.get('macid', ''), '') if eqpt.get('temperature') else eqpt.get('last_submit_at', ''),
270 253
         'temperature': eqpt.get('temperature', 0),
271
-        # 'temperature': eqpt.get('temperature', '') or get_old_temperature(eqpt.get('point_id', ''), eqpt.get('macid', '')),
272 254
         'observed_days': eqpt.get('observed_days', 0),
273 255
     } for eqpt in eqpts]
274 256
 

+ 1 - 1
equipment/admin.py

@@ -20,7 +20,7 @@ class IsolationPointUserInfoAdmin(admin.ModelAdmin):
20 20
 
21 21
 
22 22
 class ThermometerEquipmentInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
23
-    list_display = ('eqpt_id', 'point_id', 'macid', 'sn', 'active_status', 'active_at', 'ipui_pk', 'name', 'sex', 'birth_stamp', 'age', 'phone', 'status', 'updated_at', 'created_at')
23
+    list_display = ('eqpt_id', 'point_id', 'macid', 'sn', 'active_status', 'active_at', 'ipui_pk', 'status', 'updated_at', 'created_at')
24 24
     list_filter = ('point_id', 'status')
25 25
 
26 26
 

+ 12 - 11
equipment/models.py

@@ -182,7 +182,7 @@ class IsolationPointUserInfo(BaseModelMixin):
182 182
             'temperature_has_upload': self.temperature_has_upload,
183 183
             'temperature': self.temperature,
184 184
             'last_submit_at': tc.local_string(utc_dt=self.last_submit_at, format='%m-%d %H:%M') if self.last_submit_at else '',
185
-            'remark': self.remark,
185
+            'remark': self.remark or '',
186 186
         }
187 187
 
188 188
 
@@ -253,16 +253,17 @@ class ThermometerEquipmentInfo(BaseModelMixin):
253 253
             'active_status': self.active_status,
254 254
             'active_status_str': dict(self.ACTIVE_STATUE_TUPLE).get(self.active_status, ''),
255 255
             'active_at': tc.local_string(utc_dt=self.active_at),
256
-            'name': self.name or '',
257
-            'sex': self.sex,
258
-            'sex_str': dict(SexModelMixin.SEX_TUPLE).get(self.sex, ''),
259
-            'age': self.age or '',
260
-            'phone': self.phone or '',
261
-            'remark': self.remark or '',
262
-            'last_submit_at': tc.local_string(utc_dt=self.last_submit_at) if self.last_submit_at else '',
263
-            'eqpt_register_status': self.eqpt_register_status,
264
-            'eqpt_register_status_str': dict(self.REGISTER_STATUE_TUPLE).get(self.eqpt_register_status, ''),
265
-            'eqpt_register_result': self.eqpt_register_result,
256
+            'ipui_pk': self.ipui_pk,
257
+            # 'name': self.name or '',
258
+            # 'sex': self.sex,
259
+            # 'sex_str': dict(SexModelMixin.SEX_TUPLE).get(self.sex, ''),
260
+            # 'age': self.age or '',
261
+            # 'phone': self.phone or '',
262
+            # 'remark': self.remark or '',
263
+            # 'last_submit_at': tc.local_string(utc_dt=self.last_submit_at) if self.last_submit_at else '',
264
+            # 'eqpt_register_status': self.eqpt_register_status,
265
+            # 'eqpt_register_status_str': dict(self.REGISTER_STATUE_TUPLE).get(self.eqpt_register_status, ''),
266
+            # 'eqpt_register_result': self.eqpt_register_result,
266 267
             'created_at': tc.local_string(utc_dt=self.created_at),
267 268
         }
268 269